package facade;

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import utils.CCOrdenDeCompra;
import utils.CCRemito;
import vo.CCSolicitudCotizacionOperadorVO;
import ws.SolicitudCotizacionResponse;


import entidades.Cliente;
import entidades.Factura;
import entidades.Pago;
import entidades.ResumenCuenta;
import beans.Facade;

public @Stateless class BusinessDelegateBean implements BusinessDelegate {
	
	
	/*
	 * Cotizaciones
	 */
	
	
	public CCSolicitudCotizacionOperadorVO cotizarRodamientos(CCSolicitudCotizacionOperadorVO cotizacion){
		
		try{

     	   Hashtable props = new Hashtable();
     	   props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
     	   props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
     	   InitialContext context = new InitialContext(props);
     	   Facade fachada = (Facade) context.lookup("EJBSistemaODVEAR/FacadeBean/remote");
     	   
     	   System.out.println(fachada.toString());
     	   
     	   Cliente c=new Cliente();
     	  // c.setId(Integer.valueOf(cotizacion.getIdCliente()));
     	   
     	   /*for (int i=0;i<cotizacion.getItems().size();i++){
     		   CCSolicitudCotizacionOperadorVO sco=new CCSolicitudCotizacionOperadorVO();
     		   sco.setItems(cotizacion.getItems());
     		   fachada.cotizarRodamientos(cotizacion);
     	   }*/
     	   
     	   return (fachada.cotizarRodamientos(cotizacion));
     	   
     	   
     	   
     	  
     	
     	} catch (NamingException ne) {
     		System.out.println("No se encontro el nombre BusinessDelegateBean."+ ne);
     	}
		return null;
     }
		

	
	public boolean aceptarCotizacion(CCSolicitudCotizacionOperadorVO cotizacionCPR, Cliente c){
		try{

	     	   Hashtable props = new Hashtable();
	     	   props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
	     	   props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
	     	   InitialContext context = new InitialContext(props);
	     	   Facade fachada = (Facade) context.lookup("EJBSistemaODVEAR/FacadeBean/remote");
	     	   
	     	   //Cliente c=new Cliente();
	     	   //c.setId(Integer.valueOf(cotizacionCPR.getIdCliente()));
	     	   
	     	  // fachada.aceptarCotizacion(cotizacionCPR);
	     	   //fachada.aceptarCotizacion(cotizacionCPR);
	     	   return true;
	     	   
	     	   
	     	  
	     	
	     	} catch (NamingException ne) {
	     		System.out.println("No se encontro el nombre BusinessDelegateBean."+ ne);
	     		return false;
	     	}
	}
	
	
	
	/*
	 * Compras
	 */
	
	public void enviarOrdenDeCompra(CCOrdenDeCompra oc,Cliente c){
		try{

	     	   Hashtable props = new Hashtable();
	     	   props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
	     	   props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
	     	   InitialContext context = new InitialContext(props);
	     	   Facade fachada = (Facade) context.lookup("EJBSistemaODVEAR/FacadeBean/remote");
	     	   
	     	   
	     	   
	     	   fachada.enviarOrdenDeCompra(oc,c);
	     	   
	     	   
	     	   
	     	  
	     	
	     	} catch (NamingException ne) {
	     		System.out.println("No se encontro el nombre BusinessDelegateBean."+ ne);
	     	}
	}


	
	/*
	 * Resumen
	 */
	
	public ResumenCuenta getResumenCliente(Cliente c){
		try{
				
	     	   Hashtable props = new Hashtable();
	     	   props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
	     	   props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
	     	   InitialContext context = new InitialContext(props);
	     	   Facade fachada = (Facade) context.lookup("EJBSistemaODVEAR/FacadeBean/remote");
	     	   
	     	   
	     	   
	     	   return(fachada.getResumenCuenta(c));
	     	   
	     	   
	     	   
	     	  
	     	
	     	} catch (NamingException ne) {
	     		System.out.println("No se encontro el nombre BusinessDelegateBean."+ ne);
	     		return null;		
	     	}
	}



	public boolean aceptarCotizacion(
			List<SolicitudCotizacionResponse> cotizacionCPR) {
		// TODO Auto-generated method stub
		return false;
	}


	
}
